package com.project.dao;

import com.project.bean.FolloweBean;
import java.util.List;

import org.apache.ibatis.annotations.Param;

public interface FollowMapper {
	//取消关注(fid是关注表中的ID--若互相关注还要去修改对方的关注状态)
    int deleteByPrimaryKey(Integer fId);

    int insert(FolloweBean record);

    int insertSelective(FolloweBean record);

    FolloweBean selectByPrimaryKey(Integer fId);

    int updateByPrimaryKeySelective(FolloweBean record);

    int updateByPrimaryKey(FolloweBean record);

    int insertBatchSelective(List<FolloweBean> records);

    int updateBatchByPrimaryKeySelective(List<FolloweBean> records);
    //添加关注（关注前需要查询对方是否关注自己）
    //id1自己的ID，id2对方的ID，state为关注状态，1表示单方面关注，2表示互相关注。关注时添加关注时间
  	public int addFollow(@Param("id1")int id1,@Param("id2")int id2,@Param("time")String time,@Param("state")int state);
  	//查询对方是否关注自己
  	//返回值为1时表明表明对方关注了自己，此时还需要执行修改sql将对方的关注状态state由1变为2
  	//返回值为0时，表明对方未关注自己，则执行添加关注sql，并且state设置为1
  	public int isFollowed(@Param("id1")int id1,@Param("id2")int id2);
  	//修改对方关注自己的状态
  	//对方关注自己则修改对方关注状态，state设置为2
  	//若自己取消关注，则修改对方的state为1
  	public int updateState(@Param("id1")int id1,@Param("id2")int id2,@Param("state")int state);
  	//查看关注列表(分页)
  	public List<FolloweBean> findFollows(@Param("id")int id,@Param("page")int page,@Param("size")int size);
  	//查询关注列表
  	public List<FolloweBean> findFollowsById(int id);
  	//查询粉丝列表 
  	public List<FolloweBean> findFansById(int id);
  	//查看粉丝列表（分页）
  	public List<FolloweBean> findFans(@Param("id")int id,@Param("page")int page,@Param("size")int size);
  	//查看好友列表(分页)
  	public List<FolloweBean> findFriends(@Param("id")int id,@Param("page")int page,@Param("size")int size);
  	//查询关注数量
  	public int findFollowsNumber(int id);
  	//查询粉丝数量
  	public int findFansNumber(int id);
  	//查询好友数量
  	public int findFriendsNumber(int id);
  	

  	int findFollow(Integer uid, int cUId);

  //通过2个用户id来删除关注 
  	public int deleteUserFollow(@Param("uid1")int id,@Param("uid2")int id1);

  	
}